package com.dd.cloud.user.service.patient;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.cloud.user.entity.doctor.PatientMedCard;
import com.dd.cloud.user.entity.patient.PatientMedRank;
import com.dd.cloud.user.req.patient.PatientMedCardAddReq;
import com.dd.cloud.user.req.patient.PatientMedCardUpdateReq;
import com.dd.cloud.user.res.patient.PatientMedCardBindRes;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author czg
 * @since 2023-07-12
 */
public interface IPatientMedRankService extends IService<PatientMedRank> {

    /**
     * 查询患者绑定的就诊卡列表
     */
    Map<Integer, List<PatientMedCardBindRes>> bindMedList();

    /**
     * 查询最后一次使用的就诊卡
     */
    PatientMedCardBindRes lastUseMed();

    /**
     * 患者添加就诊卡
     */
    void medAdd(PatientMedCardAddReq req);

    /**
     * 患者选择就诊人
     */
    void setUseMed(String id);

    /**
     * 就诊卡id查询就诊人
     */
    PatientMedCard medById(Integer id);

    /**
     * 患者修改就诊卡
     */
    void medUpdate(PatientMedCardUpdateReq req);

    /**
     * 患者解绑就诊卡
     */
    void medBindRelieve(Integer id);

    /**
     * 就诊人解绑地址
     */
    void relieveAddress(String medId, Integer userId);

    /**
     * 查询患者信息
     *
     * @return patientMedRankService
     */
    PatientMedCard queryPatientInfo();

    /**
     * 查询患者id列表 通过就诊卡
     *
     * @param medId
     * @return
     */
    List<Integer> queryPatientIdListByMedId(String medId);
}
